A number of scientific and engineering disciplines employ random noise as component part within certain of the techniques practiced by the discipline. This is well known, as indicated by the length of time that various kinds of noise generators have been on the market (at least fifty years). And while noise in an electronic (or other) system often occurs as an unwanted component, true random noise obeying desirable rules of spectral content over a selected bandwidth is often a difficult or expensive thing to obtain, and a variety of ways have been used to produce it. Inherently analog methods of noise generation include the use of thermionic devices, semiconductor junctions, and thermal noise within resistors. These analog methods each have their advantages and disadvantages. Disadvantages are that they share are issues of cost and alteration or deterioration over time. The advent of digital technology has led to the development of various inherently digital techniques that are not inherently analog, and that rely on DAC""s (Digital to Analog Converter""s) to change a suitable stream of pseudo random digital values into the corresponding analog waveform. These inherently digital techniques have much to recommend them for general purpose low cost use, including easy control of bandwidth and distribution statistics. These methods include the direct computation (in real time!) of random numbers from suitable functions, PRBS (Pseudo Random Binary Sequence) generators, and also an adaptation of a frequency agile synthesis technique called DDS (Direct Digital Synthesis). While conceptually elegant, direct computation for high bandwidth signals (especially Gaussian ones) requires expensive computational horsepower that may be out of proportion to the costs within the rest of the instrument (which is, say, a modestly priced function generator of the bench top test equipment variety). PRBS generators uses tapped linear feedback shift registers, and as such, consume dedicated hardware not useable for anything else, and whose feedback taps are often difficult to modify in order to bring the output into compliance with desired statistical properties. In many environments DDS is often the preferred choice for generation of pseudo random noise.
DDS is believed to have originally been developed for agile synthesis of sine waveforms, such as would be used in spread spectrum transceivers. Its adaptation to become a random noise generator is relatively simple to implement. In basic DDS, a fixed, but fairly long, sequence of digital values representing a periodic signal is stored in a waveform memory. Values are read from the waveform memory at a fixed rate, but from addresses produced in accordance with the desired output frequency. The values read are applied to a DAC whose output is then filtered by a suitable analog filter. The first step in making DDS operate as a random noise generator is to load the waveform memory with a long sequence of random digital values. To obtain different statistical distributions correspondingly different sequences of values are placed into the waveform memory. This simple adaptation of the basic DDS technique is flexible, low in cost and capable of high bandwidths, but suffers from relatively poor randomness, owing to the regularity with which the same particular random numbers that are stored in the waveform memory are played back. To fix that, basic DDS has in the past been augmented with a swept address ingredient that distributes, over a series of waveform memory playback cycles, the periodic components produced by the basic technique. The result is much improved, but alas, some users report that upon concerted effort they have detected residual long period periodic signals that are in the range of 80 dB to 100 dB below the RMS value of the overall noise signal. It would be desirable if these artifacts could be inexpensively further suppressed, and the honor and reputation of advanced DDS as a pseudo random noise generator restored. What to do?
Residual distributed long period frequency components in the output of a swept DDS pseudo random noise generator are essentially suppressed beneath measurability (say, by more 100 dB below the RMS value of the overall signal) by making the swept address itself irregular. In a preferred embodiment there is a Address Increment Register (AIR) whose content: (1) alters the address used to fetch values from the waveform memory; and (2) is incremented to produce the sweep. At some point the AIR value has been incremented as high as it will go (i.e., the end of the sweep has been reached), and the process must start over. Instead of reloading the AIR with same start value at the end of each sweep, some number of residual least significant bits are left as they were at the end of the sweep, while the remaining upper bits are indeed reloaded to the previously used start value. At the end of each next sweep the residual AIR bits are different from what they were at the end of the previous sweep. This prevents consecutive sweeps from exhibiting patterns in the addresses visited in the Waveform Memory. After the fashion of repeating digits in a rational fraction, these residual bits will eventually repeat, but their cycle length significantly interferes with periodic signals in the noise output having periods less than the product of the period of the sweep with the period of the recycling for the residual least significant AIR bits.